<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <title>Fixes you need after upgrading Ubuntu from 14.04 to 16.04</title>
        <link rel="stylesheet" type="text/css" href="./css/markdown.css" />
    </head>
    <body>

    <div id="navigation">
    <a href="https://www.iredmail.org" target="_blank">
        <img alt="iRedMail web site"
             src="./images/logo-iredmail.png"
             style="vertical-align: middle; height: 30px;"
             />&nbsp;
        <span>iRedMail</span>
    </a>
    &nbsp;&nbsp;//&nbsp;&nbsp;<a href="./index.html">Document Index</a></div><h1 id="fixes-you-need-after-upgrading-ubuntu-from-1404-to-1604">Fixes you need after upgrading Ubuntu from 14.04 to 16.04</h1>
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>If you found some changes are required by uncovered in this tutorial,
please do <a href="https://www.iredmail.org/contact.html">contact us</a> to update.</p>
</div>
<div class="admonition attention">
<p class="admonition-title">Attention</p>
<p>Check out the lightweight on-premises email archiving software developed by iRedMail team: <a href="https://spiderd.io/">Spider Email Archiver</a>.</p>
</div>
<div class="toc">
<ul>
<li><a href="#fixes-you-need-after-upgrading-ubuntu-from-1404-to-1604">Fixes you need after upgrading Ubuntu from 14.04 to 16.04</a><ul>
<li><a href="#apache">Apache</a></li>
<li><a href="#postfix">Postfix</a></li>
<li><a href="#iredapd">iRedAPD</a></li>
<li><a href="#roundcube-webmail">Roundcube webmail</a></li>
<li><a href="#php-optional">PHP [OPTIONAL]</a><ul>
<li><a href="#nginx-and-php-fpm">Nginx and php-fpm</a></li>
</ul>
</li>
<li><a href="#fail2ban">Fail2ban</a></li>
</ul>
</li>
</ul>
</div>
<h2 id="apache">Apache</h2>
<p>Ubuntu 16.04 ships Apache 2.4, there's no mysql auth module for Apache
available, so you must disable all mysql auth related settings in Apache
config files. For example:</p>
<ul>
<li>/etc/apache2/apache2.conf</li>
<li>/etc/apache2/conf-available/awstats.conf</li>
<li>/etc/apache2/conf-available/cluebringer.conf</li>
</ul>
<h2 id="postfix">Postfix</h2>
<pre><code>postconf -e daemon_directory='/usr/lib/postfix/sbin'
postconf -e shlib_directory='/usr/lib/postfix'
</code></pre>
<ul>
<li>Incorrect <code>daemon_directory</code> causes Postfix cannot start.</li>
<li>Incorrect <code>shlib_directory</code> causes Postfix cannot find pcre/mysql/pgsql/ldap modules.</li>
</ul>
<h2 id="iredapd">iRedAPD</h2>
<p>iRedAPD requires package <code>python-pymysql</code>:</p>
<pre><code>apt -y install python-pymysql
</code></pre>
<h2 id="roundcube-webmail">Roundcube webmail</h2>
<p>Make sure you have settings below in Roundcube config file <code>config/config.inc.php</code>:</p>
<pre><code>// Required if you're running PHP 5.6 or later
$config['imap_conn_options'] = array(
    'ssl' =&gt; array(
        'verify_peer'  =&gt; false,
        'verify_peer_name' =&gt; false,
    ),
);

// Required if you're running PHP 5.6 or later
$config['smtp_conn_options'] = array(
    'ssl' =&gt; array(
        'verify_peer'      =&gt; false,
        'verify_peer_name' =&gt; false,
    ),
);
</code></pre>
<h2 id="php-optional">PHP [OPTIONAL]</h2>
<blockquote>
<p>NOTE: This step is toally optional if you're fine with old PHP release.</p>
</blockquote>
<p>php was not upgraded to 7.0 automatically, have to install them manually:</p>
<pre><code>apt-get install php-json php-gd php-mcrypt php-curl mcrypt php-intl php-xml php-mbstring php-mysql libapache2-mod-php
</code></pre>
<h3 id="nginx-and-php-fpm">Nginx and php-fpm</h3>
<p>If you're running Nginx, you must install package <code>php-fpm</code> too:</p>
<pre><code>apt install php-fpm
</code></pre>
<p>php-fpm daemon socket file is changed:</p>
<ul>
<li>old one: <code>/var/run/php-fpm.socket</code></li>
<li>new one: <code>/var/run/php/php7.0-fpm.sock</code></li>
</ul>
<p>iRedMail hard-codes php-fpm socket file in <code>/etc/nginx/nginx.conf</code> or
<code>/etc/nginx/conf.d/default.conf</code>, you must update them to use new socket file.</p>
<h2 id="fail2ban">Fail2ban</h2>
<p>After upgrading Fail2ban, it will fail to start due to duplicate parameter
<code>port =</code> in file <code>/etc/fail2ban/jail.conf</code> under section <code>[pam-generic]</code> like
below:</p>
<pre><code>[pam-generic]
...
port = all
...
port = anyport
</code></pre>
<p>Please comment out either one of them, then Fail2ban should be happy to start.</p><div class="footer">
    <p style="text-align: center; color: grey;">All documents are available in <a href="https://github.com/iredmail/docs/">GitHub repository</a>, and published under <a href="http://creativecommons.org/licenses/by-nd/3.0/us/" target="_blank">Creative Commons</a> license. You can <a href="https://github.com/iredmail/docs/archive/master.zip">download the latest version</a> for offline reading. If you found something wrong, please do <a href="https://www.iredmail.org/contact.html">contact us</a> to fix it.</p>
</div></body></html>